60c0d2d14b92c0337524a4fefd063af49e4dc7dc,sql/src/main/java/io/crate/action/job/ContextPreparer.java,InnerPreparer,visitNestedLoopPhase,#NestedLoopPhase#PreparerContext#,574
Before Change
FlatProjectorChain flatProjectorChain;
if (!phase.projections().isEmpty()) {
flatProjectorChain = FlatProjectorChain.withAttachedDownstream(
pageDownstreamFactory.projectorFactory(),
ramAccountingContext,
phase.projections(),
downstreamRowReceiver,
phase.jobId()
);
} else {
flatProjectorChain = FlatProjectorChain.withReceivers(Collections.singletonList(downstreamRowReceiver));
}
Predicate<Row> joinCondition = RowFilter.create(inputFactory, phase.joinCondition());
NestedLoopOperation nestedLoopOperation = new NestedLoopOperation(
phase.phaseId(),
flatProjectorChain.firstProjector(),
joinCondition,
phase.joinType(),
phase.numLeftOutputs(),
After Change
@Override
public Boolean visitNestedLoopPhase(NestedLoopPhase phase, PreparerContext context) {
RamAccountingContext ramAccountingContext = RamAccountingContext.forExecutionPhase(circuitBreaker, phase);
RowReceiver lastRR = context.getRowReceiver(phase, Paging.PAGE_SIZE);
RowReceiver firstRR = ProjectorChain.prependProjectors(
lastRR, phase.projections(), phase.jobId(), ramAccountingContext, pageDownstreamFactory.projectorFactory());
Predicate<Row> joinCondition = RowFilter.create(inputFactory, phase.joinCondition());
NestedLoopOperation nestedLoopOperation = new NestedLoopOperation(